/**
 * 查询工具类
 *
 */
module.exports = {
	/**
	 * 进行逻辑分页
	 *
	 * @param originList 原始数据
	 * @param pageNum 页码
	 * @param pageSize 条数
	 * @returns [] 逻辑分页结果
	 */
	getPage(originList, pageNum, pageSize) {
		// 如果页码为空或者每页数量为空
		pageNum = !pageNum ? 1 : pageNum;
		pageSize = !pageSize ? 10 : pageSize;

		let resultList = [];
		if (pageNum > 0 && pageSize > 0) {
			// 获取起点
			let pageStart = (pageNum - 1) * pageSize;
			// 获取终点
			let pageStop = pageStart + pageSize;
			while (pageStart < pageStop) {
				// 最后一页可能不够pageSize
				if (pageStart === originList.length) {
					break;
				}
				resultList.push(originList[pageStart++]);
			}
		} else {
			resultList = originList;
		}
		return resultList;
	},

	/**
	 * 排序
	 *
	 * @param list 列表
	 * @param fieldName 字段名称
	 * @returns [] 排序结果
	 */
	orderByDesc(list, fieldName) {
		for (let i = 0; i < list.length - 1; i++) {
			for (let j = i + 1; j < list.length; j++) {
				// 如果字段值为空，则不进行比较
				if (!list[i][fieldName] || !list[j][fieldName]) {
					continue;
				}
				if (list[i][fieldName] < list[j][fieldName]) {
					let temp = list[i];
					list[i] = list[j];
					list[j] = temp;
				}
			}
		}
		return list;
	}
}
